<%-- 
  -- Body New para Honorary.
  --
  --
  -- @author nicolas.gonzalez
--%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/struts-html-el-1.2.8.tld" prefix="html-el"%>
<%@ taglib uri="/WEB-INF/struts-logic-el-1.2.8.tld" prefix="logic-el"%>
<%@ taglib uri="/WEB-INF/security.tld" prefix="security" %>
<%@ taglib uri="/WEB-INF/ajaxtags.tld" prefix="ajax" %>

<%@ taglib uri="http://struts.apache.org/tags-bean-el" prefix="bean2"%>

<script src="<html:rewrite page='/protected/script/util.js'/>" type="text/javascript"></script>

<script src="<html:rewrite page='/protected/script/calendar/calendar.js'/>" type="text/javascript"></script>
<script src="<html:rewrite page='/protected/script/calendar/calendar-setup.js'/>" type="text/javascript"></script>
<script src="<html:rewrite page='/protected/script/calendar/lang/calendar-es.js'/>" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="<html:rewrite page='/protected/script/calendar/style/calendar-blue.css'/>" id="styleFileAnyId"/>

<%-- Para EXT --%>
<link rel="stylesheet" type="text/css" href="<html:rewrite page='/protected/script/ext-1.1.1/resources/css/ext-all.css'/>" />

<script src="<html:rewrite page='/protected/script/ext-1.1.1/adapter/ext/ext-base.js'/>" type="text/javascript"></script>
<script src="<html:rewrite page='/protected/script/ext-1.1.1/ext-all.js'/>" type="text/javascript"></script>


<!-- Para AjaxTags -->
<script src="<html:rewrite page='/protected/script/scriptaculous/scriptaculous.js'/>" type="text/javascript"></script>
<script src="<html:rewrite page='/protected/script/ajaxtags/ajax/ajaxtags.js'/>" type="text/javascript"></script>
<script src="<html:rewrite page='/protected/script/ajaxtags/ajax/ajaxtags_parser.js'/>" type="text/javascript"></script>
<script src="<html:rewrite page='/protected/script/ajaxtags/ajax/ajaxtags_controls.js'/>" type="text/javascript"></script>

<link rel="stylesheet" type="text/css" href="<html:rewrite page='/protected/style/ajaxtags/ajaxtags.css'/>" id="AjaxTagsCssId"/>

<div class="errors">
    <html:errors />
</div>

<script type="text/javascript">
     /* Crea un honorario o mas
      */
    var createHonorary = function() {
        var teacherIdValue = $("teacherId").value;
        if (Util.valid.isBlank(teacherIdValue)) {
            Ext.MessageBox.alert('Error', 'Debe elegir docente. ');
            $("teacherNameId").focus();
            return;
        }
        else {
            // Se eligio pero puede haber sido modificado en ese caso se invalida.
            var oldTeacherSurname = $("teacherNamePostId").value; 
            var actualTeacherSurname = $("teacherNameId").value; 
            
            if (oldTeacherSurname != actualTeacherSurname) {
                // Se modifico  => limpio todo y alerto
                $("teacherId").value = "";
                $("teacherNameId").value = "";
                $("teacherNamePostId").value = "";
                Ext.MessageBox.alert('Error', 'Por favor, no modifique el campo de docente una vez que lo elige de la lista ... ');
                $("teacherNameId").focus();
                return;
            }
        }    
        var courseSelectedObj = $("courseSelectedId");
        var courseSelectedValue = courseSelectedObj.options[courseSelectedObj.selectedIndex].value;
        if (Util.valid.isBlank(courseSelectedValue)) {
            Ext.MessageBox.alert('Error', 'Debe elegir curso. ');
            courseSelectedObj.focus();
            return;
        }
        var validityFromValue = $("validityFromId").value;  
        if (Util.valid.isBlank(validityFromValue)) {
            Ext.MessageBox.alert('Error', 'Debe ingresar Vigencia Desde. ');
            $("validityFromId").focus();
            return;
        }
        var valueValue = $("valueId").value;  
        if (Util.valid.isBlank(valueValue)) {
            Ext.MessageBox.alert('Error', 'Debe ingresar importe. ');
            $("valueId").focus();
            return;
        }
        else {
            if (!Util.valid.isPositiveFloat(valueValue)) {
                Ext.MessageBox.alert('Error', 'Valor debe ser un valor valido positivo. ');
                $("valueId").focus();
                return;
            }
        } 
        var reasonValue = $("reasonId").value; // este no se valida

        var amountToCreateValue = $("amountToCreateId").value;   
        if (!Util.valid.isPositiveInteger(amountToCreateValue)) {
            Ext.MessageBox.alert('Error', 'Cantidad a crear debe ser un entero positivo. ');
            $("amountToCreateId").focus();
            return;
        }
        else {
            // NO puede ser 0
            if (amountToCreateValue == "0") {
                Ext.MessageBox.alert('Error', 'Cantidad a crear debe ser un entero positivo y mayor a cero. ');
                $("amountToCreateId").focus();
                return;
            }
        }    
        
        // Seteo en el form oculto para submitearlo
        $("teacherIdCreateId").value = teacherIdValue;
        $("courseSelectedCreateId").value = courseSelectedValue;
        $("validityFromIdCreateId").value = validityFromValue;
        $("valueCreateId").value = valueValue;
        $("reasonCreateId").value = reasonValue;
        $("amountToCreateCreateId").value = amountToCreateValue;

        var form = $("createHonoraryFormId");
        form.submit();
    } 
    
    
    /* Procesa la respuesta del autocomplete
     * Se deja en "teacherNameAutoCompletePostId" (un hidden) el "id;nombre"
     * entonces se parsea y se saca el id y se deja en "teacherId" y en 
     * "teacherNameId" y "teacherNamePostId" se deja el nombre. Se deja dos veces
     * para validar q no se cambie
     */
    var postAutoCompleteTeacher = function() {
        var hiddenAutoCompletePostValue = $("teacherNameAutoCompletePostId").value;
    
        if (!Util.valid.isBlank(hiddenAutoCompletePostValue)) {
            // Algo se trajo entonces se parsea
            var splitted = hiddenAutoCompletePostValue.split(';'); 
            
            var id = splitted[0];
            var teacherName = splitted[1];
            
            $("teacherId").value = id;
            $("teacherNameId").value = teacherName;  
            $("teacherNamePostId").value = teacherName;
            
            // Limpio lo que estaba antes....
            $("teacherNameAutoCompletePostId").value = "";
        }
    }
    
    // Decora los titles de HTML. Lo hace mas lindo, pero mas pesado...
    Ext.QuickTips.interceptTitles = true;
    Ext.QuickTips.init();
    
</script>

<%-- El ID del form NO debe ser modificado. Se usa desde el menu --%>
<html:form action="/protected/showNewHonorary" styleId="honoraryFormId">
    
    <h2>Creaci&oacute;n de Honorario</h2>
    
    <div class="newHonoraryEdit">
        <table class="tableDataDebt" cellspacing="0">
            <tr>
                <td class="tableDataTitle">
                    Docente
                </td>
                <td class="tableDataValue">
                    <html:text property="teacherName" styleId="teacherNameId" styleClass="form-autocomplete" size="30" title="Ingrese el nombre y espere a que se carguen los resultados..." />

                    <%--    En teacherId esta el ID cuando se autocompleta. El post function deja 
                            en teacherNamePost el nombre del docente de manera de controlar q no se haya cambiado.
                            Ojo xq AjaxTags deja tambien en teacherNamePostId lo q vino.  --%>
                    <html:hidden property="teacherId" styleId="teacherId"/>
                    <input type="hidden" name="teacherNameAutoCompletePost" id="teacherNameAutoCompletePostId" />
                    <input type="hidden" name="teacherNamePost" id="teacherNamePostId" />
                </td>            
            </tr>
            <tr>
                <td class="tableDataTitle">
                    Curso
                </td>
                <td class="tableDataValue">
                    <html:select property="courseSelected" styleClass="allSelects" styleId="courseSelectedId" title="Cursos ..." >
                        <html:optionsCollection property="courseOptions"/>
                    </html:select>
                </td>            
            </tr>
            <tr>
                <td class="tableDataTitle">
                    Vigencia Desde
                </td>
                <td class="tableDataValue">
                    <html:text property="validityFrom" styleId="validityFromId" readonly="true"/>
                    &nbsp;
                    <img id="validityFromImgId" style="border: 0px;" title="title" src="<html:rewrite page="/protected/img/date.png"/>" title="Seleccione una fecha"/>
                </td>            
            </tr>
            <tr>
                <td class="tableDataTitle">
                    Importe
                </td>
                <td class="tableDataValue">
                    <html:text property="value" styleId="valueId" title="Importe del honorario ..." />
                </td>            
            </tr>
            <tr>
                <td class="tableDataTitle">
                    Motivo/Desc
                </td>
                <td class="tableDataValue">
                    <html:text property="reason" styleId="reasonId" title="Ingrese un motivo o descripcion ..." />
                </td>            
            </tr>
            <tr>
                <td class="tableDataTitle">
                    Cantidad a crear
                </td>
                <td class="tableDataValue">
                    <html:text property="amountToCreate" styleId="amountToCreateId" title="Se crearan esta cantidad de honorarios ... Todos iguales ..." />
                </td>            
            </tr>


        </table>

        <script type="text/javascript">
            Calendar.setup({
              inputField    : "validityFromId",
              button        : "validityFromImgId",
              align         : "Tr",
              ifFormat      : "%d/%m/%Y"
            });
          </script>        
    
        <div id="clear">
        </div>
        <div id="clear">
        </div>
        
        <%-- No se valida seguridad ya que SOLO entran aca los q tienen permiso --%>
        <div class="panelButton">
            <input type="button" value="Crear" onclick="createHonorary();" title="Crea el(los) honorario(s) ..." class="button">
        </div>  
    
    </div>

    <%-- Indicador de llamada de AJAX para el autocomplete --%>
    <span id="indicatorRegion" style="display: none; margin-left: 50%;">
        <img id="anyId" style="border: 0px;" title="title" src="<html:rewrite page="/protected/img/ajax-loader.gif"/>" />
    </span>
    
</html:form>

<ajax:autocomplete
  baseUrl="${pageContext.request.contextPath}/protected/autocompleteTeachers.do"
  source="teacherNameId"
  target="teacherNameAutoCompletePostId"
  parameters="teacherName={teacherNameId}"
  className="autocomplete"
  indicator="indicatorRegion"
  minimumCharacters="2"
  postFunction="postAutoCompleteTeacher"
/>

<%-- Inyectados por Javascript --%>
<div id="createDivId" class="hideClass">
    <html:form action="/protected/createHonorary" styleId="createHonoraryFormId">
        <html:hidden property="teacherId" value="" styleId="teacherIdCreateId"/>
        <html:hidden property="courseSelected" value="" styleId="courseSelectedCreateId"/>
        <html:hidden property="validityFrom" value="" styleId="validityFromIdCreateId"/>
        <html:hidden property="value" value="" styleId="valueCreateId"/>
        <html:hidden property="reason" value="" styleId="reasonCreateId"/>
        <html:hidden property="amountToCreate" value="" styleId="amountToCreateCreateId"/>
    </html:form>
</div>   
